1. Field of the Invention
The present invention relates to waveform generating devices, and more particularly, to waveform generating devices applicable to musical tone generating circuitry employed in electronic musical instruments, and the like.
2. Prior Art
Electronic musical instruments are conventionally known wherein the tone generating circuitry incorporates digital waveform memory, on which basis timbre control is effected with these devices, digital waveform data which has been previously recorded in waveform memory is output serially therefrom at a sampling rate which corresponds to the desired pitch of the musical tone to be produced. Accordingly, pitch control is achieved through varying the sampling rate at which digital waveform data is output from waveform memory. In this way, a digital signal is created which has timbre characteristics corresponding to the waveform data output from waveform memory and a pitch corresponding to the rate at which digital waveform data is output from waveform memory.
Examples of this type of waveform generating device include that disclosed in Japanese Patent Application Laid-Open No. Sho-60-63593, and that disclosed in Japanese Patent Application Laid-Open No. Sho-62-242995. In the first of the above referenced Japanese patent applications, a device is disclosed wherein waveform data which has been compressed by DPCM (differential pulse code modulation) encoding and serially recorded in waveform memory can be subsequently read from the waveform memory and decompressed via a corresponding decoding process so as to regenerate the originally stored waveform data, in this way effectively increasing the storage capacity of a given amount of waveform memory. Similarly, Japanese Patent Application Laid-Open No. Sho-62-242995 discloses a device wherein waveform data is compressed using differential modulation, then stored in waveform memory. Thus, in both of the above-described conventional devices, compressed waveform data which has been stored in waveform memory is later read out therefrom and decompressed when regeneration of the corresponding timbre is desired.
With the devices of both of the above cited Japanese patent applications, in response to operation of keys on a keyboard, or signals from various other types of input parameter generating means, the rate at which waveform data is read out from waveform memory is appropriately adjusted in each tone generating element in operation, on which basis the pitch of the individual tone produced in each tone generating element is controlled. Systems of this type wherein pitch is directly controlled by varying the sampling rate at which waveform data is read out from waveform memory are generically referred to as synchronous waveform generating devices. In the case of synchronous waveform generating devices such as those of the above cited Japanese patent applications, because the generation of two or more musical tones having differing pitches involves sampling waveform data at differing sampling rates, considerable complexity is introduced into the design of subsequent signal processing devices such as D/A converters, effectors etc., and the interface therewith. This increase in complexity is especially marked in the case of polyphonic systems.
As a means to circumvent the above-described difficulties, the use of asynchronous waveform generating devices has been implemented. With asynchronous waveform generating devices, in addition to the waveform data values stored in waveform memory, intermediate waveform data values become available through application of interpolation techniques to groups of consecutive waveform data values stored in waveform memory. Thus, although waveform data values are stored in waveform memory at consecutive integral memory addresses, in effect, output of interpolated waveform data values corresponding to hypothetical nonintegral memory address becomes possible. As a result, readout of waveform data from waveform memory can be carried out at a predetermined sampling rate independent of the pitch of the musical tone to be produced, thereby making it possible to carry out subsequent processing at the constant sampling rate.
With both synchronous and asynchronous waveform generating devices, the waveform data values stored in waveform memory is originally generated by sampling the original musical tones at a fixed sampling rate R.sub.c (this fixed sampling rate R.sub.c is the mathematical invervse of a fundamental sampling interval hereafter referred to as fundamental sampling interval T.sub.c). This is illustrated in FIG. 1(a) for a fundamental waveform A of an original musical tone, wherein the horizontal axis represents time, and the interval between each adjacent pair of solid vertical lines corresponds to fundamental sampling interval T.sub.c.
In contrast to synchronous generating waveform devices, however, with an asynchronous waveform generating device, interpolated waveform data values corresponding to waveform data values from the hypothetical sampling of the original musical tone at a sampling rate R.sub.m (different from fundamental sampling rate R.sub.c, this sampling rate R.sub.m is the mathematical invervse of a sampling interval hereafter referred to as regeneration sampling interval T.sub.m) are output at the fundamental sampling rate R.sub.c. When a regeneration sampling interval T.sub.m has a duration greater than that of fundamental sampling interval T.sub.c, as indicated, for example, by the broken vertical lines seen in FIG. 1(a), output of consecutive waveform data values at the fundamental sampling rate R.sub.c will result in a pitch higher than that of the original musical tone, as is shown in FIG. 1(b), the regeneration waveform B of the regeneration musical tone having a pitch equal to the frequency of fundamental waveform A multiplied by sampling ratio .alpha.(=T.sub.m /T.sub.c).
It is commonly the case, however, that the sampling ratio .alpha. is not an integral value, in other words, regeneration sampling interval T.sub.m is frequently not an integral multiple of fundamental sampling interval T.sub.c. As a result, in order to implement the use of the above-described type of asynchronous waveform generating device, it becomes necessary to include a means to interpolate the sampled data corresponding to points which are integral multiples of fundamental sampling interval T.sub.c, to thereby obtain waveform data corresponding to points which are integral multiples of regeneration sampling interval T.sub.m. With the asynchronous waveform generating devices described thus far, an interpolating circuit is employed, wherein multiple interpolation calculations are performed using the data stored in waveform memory. More specifically, for each sampling data value to be calculated which corresponds to an integral multiple of regeneration sampling interval T.sub.m on the time axis, an interpolation operation is carried out wherein sampling data values corresponding to multiples of fundamental sampling interval T.sub.c in proximity to the point for which the interpolation operation is to be carried out are supplied to the interpolating circuit, whereupon calculations are carried out so as to arrive at the interpolated waveform data value.
As a concrete example of the above described interpolation operations, consider the sample waveform A shown in FIG. 1(a). To determine the sampling data value corresponding to the single point W.sub.x1 on the time axis shown in the figure, 6th order interpolation is carried out using the sampling data values correlating with points W.sub.-3, W.sub.-2, W.sub.-1, W.sub.0, W.sub.1, W.sub.2 and W.sub.3 on the time axis, where W.sub.-3, W.sub.-2, W.sub.-1 and W.sub.0 are the four multiples of fundamental sampling interval T.sub.c immediately prior to W.sub.x1 with respect to time, and where W.sub.1, W.sub.2 and W.sub.3 are the three multiples of fundamental sampling interval T.sub.c immediately after W.sub.x1 with respect to time. Thus, the sampling data values corresponding to these points on the time axis are read out from waveform memory and supplied to the interpolating circuit. In the interpolating circuit, for each of the seven points, a corresponding interpolation coefficient is calculated based on the phase difference x between W.sub.x1 and W.sub.0, from which the waveform data value corresponding to point W.sub.x1 is obtained. This process is then repeated to determine the sampling data value corresponding to the single point W.sub.x2 on the time axis, this time carrying out the interpolation operation using the sampling data values correlating with points W.sub.-2, W.sub.-1, W.sub.0, W.sub.1, W.sub.2, W.sub.3 and W.sub.4 on the time axis, where W.sub.-2, W.sub.-1, W.sub.0 and W.sub.1 are the four multiples of fundamental sampling interval Tc immediately prior to W.sub.x2. The and where W.sub.2, W.sub.3 and W.sub.4 are the three multiples of fundamental sampling interval Tc immediately after W.sub.x2. The interpolation process as thus described is repeated over and over, thereby determining waveform data values corresponding to W.sub.x1, W.sub.x3, W.sub.x4, W.sub.x5, W.sub.x6, . . . which are consecutive multiples of regeneration sampling interval Tm. When the calculated waveform data values thus obtained are then consecutively output at fundamental sampling rate R.sub.c, waveform B shown in FIG. 1(b) is produced, having a frequency which is higher than that of fundamental waveform 1 shown in FIG. 1(a) by a factor equal to ratio T.sub.m /T.sub.c, that is, by a factor equal to sampling ratio .alpha..
With the waveform processing thus described, although actual waveform data values are sequentially stored in waveform memory at consecutive integral memory addresses, interpolation calculations are carried out in response to hypothetical fractional addresses. By sequentially summing the value of sampling ratio .alpha., these memory addresses can be successively obtained. With the consecutive fractional values thus obtained, the integral portions thereof can be used as memory addresses at which actual waveform data values used for interpolation calculations are stored, whereas from the fractional portions thereof, the above-described interpolation coefficients can be obtained for each sampling data value which is employed in interpolation calculations. An asynchronous waveform generating device implementing this method has been disclosed in Japanese Patent Publication No. Sho-59-17838.
For this conventional asynchronous waveform generating device, however, in proportion to the order of interpolation carried out, the number of sampling data values which must be read out from waveform memory for the first interpolation calculation increases. As a result, a significant delay can result between the time a tone generation command is given and the time the tone is actually generated. Particularly, when pitch data .alpha. is a relatively small value, the phase data values obtained by sequentially summing pitch data .alpha. increase at a very slow rate, which results in poor response characteristics.